package com.tdam2013.grupo09.notificaciones;



import com.tdam2013.grupo09.R;
import com.tdam2013.grupo09.BD.BD;
import com.tdam2013.grupo09.actividades.InfoContacto;
import com.tdam2013.grupo09.actividades.MensajeriaWebActivity;
import com.tdam2013.grupo09.actividades.MenuNavegacion.ContactoSeleccionado;
import com.tdam2013.grupo09.funcionalidad.Accion;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;



public class Dialogo extends DialogFragment {

	private static int tipoDialogo;	

	public static Dialogo newInstance(int tipo) {
		Dialogo d = new Dialogo();
		tipoDialogo = tipo;
		return d;
	}

	@Override
	public Dialog onCreateDialog(Bundle savedInstanceState) {
		switch (tipoDialogo) {
		case 1: {
			return mostrarDialogoNumeroTelefono();
		}

		case 2: {
			return mostrarDialogoErrorConectividad();
		}
		case 3: {
			return mostrarDialogoEmail();
		}
		case 4: {
			return mostrarDialogoRegistrarUsuarioWeb();
		}
		case 5:
			return mostrarDialogoCambiarUsuarioWebDeContacto();
		default: {
			return null;
		}
		}
	}

	public Dialog mostrarDialogoNumeroTelefono() {
		int cantidadTelefonos = ContactoSeleccionado.getContacto().getNumerosTelefonicos().size();
		String[] items = new String[cantidadTelefonos];

		for (int i = 0; i < cantidadTelefonos; i++) {
			String tipo = ContactoSeleccionado.getContacto().getNumerosTelefonicos().get(i).getTipo();
			items[i] = "Llamar a " + tipo;
		}

		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

		builder.setTitle("Llamada").setItems(items,new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int item) {
						Accion.llamar(ContactoSeleccionado.getContacto()
								.getNumerosTelefonicos().get(item).getNumero(),
								ContactoSeleccionado.getContacto().getNombre(),getActivity());
					}
				});

		return builder.create();
	}

	public Dialog mostrarDialogoEmail() {
		int cantidadEmails = ContactoSeleccionado.getContacto().getEmails().size();
		String[] items = new String[cantidadEmails];

		for (int i = 0; i < cantidadEmails; i++) {
			String mail = ContactoSeleccionado.getContacto().getEmails().get(i).getEmail();
			items[i] = "Enviar a " + mail;
		}

		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

		builder.setTitle("Email").setItems(items,
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int item) {
						Accion.enviarMail(ContactoSeleccionado.getContacto()
								.getEmails().get(item).getEmail(),
								ContactoSeleccionado.getContacto().getNombre(),getActivity());
					}
				});

		return builder.create();
	}

	public Dialog mostrarDialogoErrorConectividad() {
		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
		builder.setTitle("No hay conectividad disponible");
		builder.setIcon(android.R.drawable.ic_dialog_alert);
		builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int id) {
				dialog.cancel();
			}
		});

		return builder.create();
	}

	public Dialog mostrarDialogoRegistrarUsuarioWeb() {
		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
		LayoutInflater inflater = getActivity().getLayoutInflater();
		final View inflator = inflater.inflate(R.layout.dialog_edittext, null);
		builder.setView(inflator);

		builder.setNegativeButton("Guardar",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						EditText nom = (EditText) inflator.findViewById(R.id.txtUsuarioWeb);
						String usuarioWeb = nom.getText().toString();
						if (usuarioWeb != null) {
							BD bd = new BD(getActivity());
							if (bd.registrarUsuarioWebDeContacto(
									ContactoSeleccionado.getContacto().getId(),usuarioWeb));
							{
								ContactoSeleccionado.getContacto().setUsuarioWeb(usuarioWeb);
								startActivity(new Intent(getActivity(),MensajeriaWebActivity.class));
							}
							InfoContacto.setUsuario(usuarioWeb);
							dialog.cancel();
						}

					}
				});

		builder.setPositiveButton("Cancelar",new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						dialog.cancel();
					}
				});

		Dialog dialogo = builder.create();
		return dialogo;
	}

	public Dialog mostrarDialogoCambiarUsuarioWebDeContacto() {
		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
		LayoutInflater inflater = getActivity().getLayoutInflater();

		final View inflator = inflater.inflate(R.layout.dialog_edittext, null);
		builder.setView(inflator);

		TextView titulo = (TextView) inflator.findViewById(R.id.lblTitulo);
		titulo.setText("Ingrese el nuevo usuario web del contacto");

		builder.setNegativeButton("Guardar",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						EditText nom = (EditText) inflator.findViewById(R.id.txtUsuarioWeb);
						String usuarioWeb = nom.getText().toString();
						if (usuarioWeb != null) {
							BD bd = new BD(getActivity());
							if (bd.actualizarUsuarioWebDeContacto(ContactoSeleccionado.getContacto().getId(),usuarioWeb))
								;
							{
								ContactoSeleccionado.getContacto().setUsuarioWeb(usuarioWeb);
							}
							InfoContacto.setUsuario(usuarioWeb);
							
							dialog.cancel();
						}

					}
				});

		builder.setPositiveButton("Cancelar",new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int id) {
						dialog.cancel();
					}
				});

		Dialog dialogo = builder.create();
		dialogo.show();
		return dialogo;
	}
	
	

}
